// Package mgmt
// @Author: zhengqi Wu
// @Description:
// @Version: 1.0.0
// @Date: 2021/4/18 10:12 上午
// @Copyright: MIN-Group；国家重大科技基础设施——未来网络北大实验室；深圳市信息论与未来网络重点实验室
//

class IControlCommand{
    constructor() {
        //
        // 线速编码，将一个包编码成网络可传输的格式
        //
        // @Description:
        // 	1. 可以使用 Encoder.getBuffer() 获取编码的结果
        // @param encoder
        //
        if(!this.getTopPrefix) {
            throw new Error("IControlCommand's must support getTopPrefix!");
        }
        //
        // 线速解码，将一个TLV解码成一个网络包
        //
        // @Description:
        // @param block
        //
        if(!this.getModuleName){
            throw new Error("IControlCommand's must support getModuleName!");
        }
        if(!this.getAction){
            throw new Error("IControlCommand's must support getAction!");
        }
        if(!this.getParameters){
            throw new Error("IControlCommand's must support getParameters!");
        }
    }
}

module.exports={
    IControlCommand: IControlCommand
}